Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources

ABSTRACT

A method for providing a servicing operation in a computing environment includes providing a plurality of resources including at least a client resource requiring a periodic servicing operation, a service provider resource capable of providing that servicing operation. At least one of the client resource and the service provider resource are defined by virtual machines. The client resource and the service provider resource are transparently co-located by transferring the resource defined by a virtual machine, and the service provider resource performs the servicing operation. Methods, computer systems, and computer programs available as a download or on a computer-readable medium for installation according to the invention are provided.

This application claims priority and benefit as a divisional applicationof U.S. patent application Ser. No. 12/290,865, filed on Nov. 4, 2008and entitled “Dynamic and Automatic Colocation and Combining of ServiceProviders and Service Clients in a Grid of Resources,” the entirety ofthe disclosure of which is incorporated herein by reference.

FIELD OF THE INVENTION

Generally, the present invention relates to computing methods andsystems for providing servicing operations. Particularly, it relates tocomputing methods and systems, and devices incorporating the methods andsystems, for providing servicing operations such as data backupoperations while significantly reducing bandwidth consumption.

BACKGROUND OF THE INVENTION

In a grid of resources (physical computing devices, virtual machines,client applications, service provider resources and applications, etc.)certain of these resources will host services for consumption by otherresources. A non-limiting example is a resource that hosts a backupserver. Conventional communications between a service provider resource(i.e., a resource providing a servicing operation) and a client resource(i.e., a resource requiring a servicing operation) consume resources,e.g. in the form of bandwidth consumed during communication between theresources. Remaining in the example of a data backup operation, thebackup operation may involve network traffic which is sent from theclient resource to the service provider resource.

Thus, in a typical data backup operation, computer system users maycreate redundant or backup copies of data stored on various storagedevices, which may be accessed to restore the data in the event of acatastrophic failure. In the typical situation, backup software iscontained on a computer system, and a backup operation is scheduled tooccur automatically and periodically. The computer system hosting thebackup software may be remote from the computer system hosting theclient resource requiring backup. The computer system hosting the backupsoftware communicates directly with a computer system hosting a clientresource, such as a database or application requiring backup, andstreams backup traffic therefrom, typically over a local area network(LAN). While effective for its intended purpose, such a backup operationconsumes bandwidth, preventing or slowing other essential traffic.

To prevent such consumption of resources, there is a need in the art formethods and systems for providing such servicing operations which, whileaccomplishing the desired function, do not require transmission of dataover local area networks and the attendant bandwidth consumption. Suchmethods and systems should contemplate automatic servicing operations,for example automatic and periodic data backup functions. Anyimprovements along such lines should further contemplate goodengineering practices, such as relative inexpensiveness, stability, easeof implementation, low complexity, security, unobtrusiveness, etc.

SUMMARY OF THE INVENTION

The above-mentioned and other problems become solved by applying theprinciples and teachings associated with the hereinafter-describedmethods and systems for providing a servicing operation. It has beensurprisingly discovered that the resources consumed (bandwidth) may bedramatically reduced by automatically and transparently co-locating theservice provider resource and the client resource, prior to starting theservicing operation. In one embodiment, the service provider resourcemay be moved to the physical site of the client resource. Alternatively,the client resource may be moved to the physical site of the serviceprovider resource. In yet another embodiment, the service providerresource may be terminated, moved to the physical site of the clientresource (or vice versa), and re-booted prior to initiating theservicing operation. It is also of note that these steps occur withoutaccessing a LAN, thus reducing bandwidth consumption.

In one aspect, there is provided a method for providing a servicingoperation in a computing environment. The method includes providing aplurality of resources including at least a client resource requiring aperiodic servicing operation, a service provider resource capable ofproviding that servicing operation, and a storage area network (SAN).The next step is transparently co-locating the client resource and theservice provider resource, and causing the service provider resource toperform the servicing operation. At least one of the client resource andthe service provider resource are provided as virtual machines.

The step of transparently co-locating the client resource and theservice provider resource may be performed by one of transferring avirtual machine providing the client resource to a computing devicehosting the service provider resource or transferring a virtual machineproviding the service provider resource to a computing device hostingthe client resource. Alternatively, the step of co-locating the clientresource and the service provider resource may be performed by one ofbooting up the service provider resource in a computing device hostingthe client resource or booting up the client resource in a computingdevice hosting the service provider resource. The steps of co-locatingmay be performed automatically on a predetermined time schedule, or maybe performed in response to a specific user request. In one embodiment,the servicing operation is a data backup operation, and the serviceprovider resource may be a virtual machine configured to provide a databackup operation. Alternatively, the client resource may be a virtualmachine defining an application requiring a periodic data backupoperation, and the service provider resource may be backup softwarehosted on a physical computing device.

In another aspect, a computing system is provided for performing a databackup function. The system includes a plurality of computing devicesarranged locally and/or remotely, the plurality of computing devicesdefining at least a storage area network. The system includes also aplurality of applications arranged on one or more of the computingdevices and a plurality of virtual machines arranged on one or more ofthe computing devices, wherein the virtual machines define applicationsand/or services. At least one data backup function is provided, definedby at least one virtual machine or by at least one application containedon at least one of the plurality of computing devices. Still further, adata orchestration tool is provided for transferring a virtual machinefrom one of the plurality of computing devices to another of thecomputing devices. The data backup operation is performed entirely onthe storage area network after transfer of the virtual machine. The dataorchestration tool may transfer a virtual machine defining the databackup function to a computing device requiring a periodic data backupoperation, or may transfer a virtual machine defining an applicationrequiring a periodic data backup operation to a computing devicecontaining a data backup function.

These and other embodiments, aspects, advantages, and features of thepresent invention will be set forth in the description which follows,and in part will become apparent to those of ordinary skill in the artby reference to the following description of the invention andreferenced drawings or by practice of the invention. The aspects,advantages, and features of the invention are realized and attained bymeans of the instrumentalities, procedures, and combinationsparticularly pointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings incorporated in and forming a part of thespecification, illustrate several aspects of the present invention, andtogether with the description serve to explain the principles of theinvention. In the drawings:

FIG. 1 schematically shows a computing system environment for providinga servicing operation in accordance with the present invention;

FIG. 2 depicts a representative Storage Area Network configuration;

FIG. 3 is a flow chart depicting a servicing operation in accordancewith the present invention; and

FIG. 4 is the flow chart shown in FIG. 3, modified to depict in sequenceshut-down of the servicing resource, co-location of the servicingresource and client resource, and boot-up of the servicing resource toperform the service (data backup).

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS

In the following detailed description of the illustrated embodiments,reference is made to the accompanying drawings that form a part hereof,and in which is shown by way of illustration, specific embodiments inwhich the invention may be practiced. These embodiments are described insufficient detail to enable those skilled in the art to practice theinvention and like numerals represent like details in the variousfigures. Also, it is to be understood that other embodiments may beutilized and that process, mechanical, electrical, arrangement, softwareand/or other changes may be made without departing from the scope of thepresent invention. In accordance with the present invention, methods andapparatus for providing a servicing operation are hereinafter described.

With reference to FIG. 1, a representative computing environment 100includes a computing device 102 arranged as an individual or networkedphysical or virtual machine for senders and/or recipients of item(s),including a host 104 and clients arranged with a variety of othernetworks and computing devices. In a traditional sense, an exemplaryhost 104 typifies a server, such as a grid or blade server. Brandexamples include, but are not limited to, a Windows brand Server, a SUSELinux Enterprise Server, a Red Hat Advanced Server, a Solaris server oran AIX server. A computing device 102 may also include a server 106,such as a grid or blade server.

Alternatively, a computing device 102 includes a general or specialpurpose computing device in the form of a conventional fixed or mobile(e.g., laptop) computer 106 having an attendant monitor 108 and userinterface, such as a keyboard 110 or a mouse 112. The computerinternally includes a processing unit for a resident operating system,such as DOS, WINDOWS, MACINTOSH, LEOPARD, VISTA, UNIX, and LINUX, toname a few, a memory, and a bus that couples various internal andexternal units, e.g., “Other” 114, to one another. Representative“other” items 114 include without limitation PDA's, cameras, scanners,printers, microphones, joy sticks, game pads, satellite dishes,hand-held devices, consumer electronics, minicomputers, computerclusters, main frame computers, a message queue, a peer computingdevice, a broadcast antenna, a web server, an AJAX client, agrid-computing node, a virtual machine, a web service endpoint, acellular phone, or the like. The other items may also be stand alonecomputing devices in the environment 100 or the computing device 102itself.

Storage devices are contemplated and may be remote or local. While theline is not well defined, local storage generally has a relatively quickaccess time and is used to store frequently accessed data, while remotestorage has a much longer access time and is used to store data that isaccessed less frequently. The capacity of remote storage is alsotypically an order of magnitude larger than the capacity of localstorage. Regardless, storage is representatively provided for aspects ofthe invention contemplative of computer executable instructions, e.g.,software, as part of computer program products on readable media, e.g.,disk for insertion in a drive of computer 106.

It will therefore be appreciated that the system 100 shown in FIG. 1 isconfigured to perform the tasks required of the present computersystem/computing system environment as set forth above, and thatcomputer program products providing computer executable instructions(software) for performing those tasks is contemplated. Computerexecutable instructions may be made available for installation as adownload or may reside in hardware, firmware or combinations in thedevice 102. When described in the context of computer program products,it is denoted that items thereof, such as modules, routines, programs,objects, components, data structures, etc., perform particular tasks orimplement particular abstract data types within various structures ofthe computing system which cause a certain function or group offunctions.

In form, the computer product can be a download of executableinstructions resident with a downstream computing device, or readablemedia, received from an upstream computing device or readable media, adownload of executable instructions resident on an upstream computingdevice, or readable media, awaiting transfer to a downstream computingdevice or readable media, or any available media, such as RAM, ROM,EEPROM, CD-ROM, DVD, or other optical disk storage devices, magneticdisk storage devices, floppy disks, or any other physical medium whichcan be used to store the items thereof and which can be assessed in theenvironment.

In a network, the host 104 and computing device 102 communicate with oneanother via wired, wireless or combined connections 118 that are eitherdirect 118 a or indirect 118 b. If direct, they typify connectionswithin physical or network proximity (e.g., intranet). If indirect, theytypify connections such as those found with the internet, satellites,radio transmissions, or the like, and are represented schematically aselement 120. In this regard, other contemplated items include servers,routers, peer devices, modems, T# lines, satellites, microwave relays orthe like. The connections may also be LAN, metro area networks (MAN),and/or wide area networks (WAN) that are presented by way of example andnot limitation. The topology is also any of a variety, such as ring,star, bridged, cascaded, meshed, or other known or hereinafter inventedarrangement.

In computer systems and computer system environments, it is known toprovide virtual machines. Such virtual machines are known to the skilledartisan to be software implementations of computing devices which arecapable of executing applications in the same fashion as a physicalcomputing device. As examples, system virtual machines provide completesystem platforms supporting execution of complete operating systems.Process virtual machines are intended to perform a single application orprogram, i.e., support a single process. In essence, virtual machinesemulate the underlying hardware or software in a virtual environment.Many process, system, and operating system-level virtual machines areknown to the skilled artisan.

Still further, it is known in the art to provide storage area networks(SAN). Depicted schematically in FIG. 2, a SAN system 200 provides ameans for a computing device 102 and/or host 104 to utilize networkprotocol to connect to remote storage resources, for example diskarrays, optical jukeboxes, and/or tape drives or libraries, such as viaan Internet Protocol network.

In the embodiment schematically depicted in FIG. 2, application software202 communicates with a file system 204. Typically, an internet SCSI(iSCSI; mapping SCSI over TCP/IP) protocol is implemented to allow theapplication to send SCSI commands over existing network infrastructureto file system 204. However, it is also known to utilize Fiber ChannelProtocol over IP (mapping SCSI over Fiber Channel Protocol over IP),iSCSI Extensions for RDMA protocols (mapping SCSI over InfiniBand),Hyper SCSI (mapping SCSI over Ethernet), FICON mapping over FiberChannel (typically for mainframe computing devices), mapping ATA overEthernet protocols, Fiber Channel over Ethernet protocols, and the like.

File system 204 communicates with remote storage resource 206, which asdiscussed above may be disk arrays, optical jukeboxes, tape drivesand/or libraries, and the like. A SAN often utilizes a Fiber Channelfabric topology for such communication, which is an infrastructurespecially designed to handle storage communications. For comparison, afabric is similar in concept to a network segment in a local areanetwork. Advantageously, a Fiber Channel topology provides more rapidand reliable access in comparison to higher-level protocols. Ethernetcommunication, iSCSI protocols, and the like are also implementedaccording to the desired application.

An advantage of the SAN is that, from the point of view of the classdrivers and any application software 202, the remote storage resources206 simulate locally attached devices. Further, all applications areable to access all remote storage resources 206. It is known to use SANprotocols to provide storage consolidation and, and to mirror storageresources for disaster recovery purposes. That is, entire storage diskarrays may be migrated with minimal configuration changes, essentiallymaking storage “routable” in a similar fashion as network traffic.Conventional uses for SAN systems include without limitation emailservers, storage of large databases, high usage file servers, and thelike.

A representative embodiment of the present invention will now bediscussed. With reference to FIG. 3, the overall flow of a servicingoperation as described herein is given generically as 300. In thedepicted embodiment, the servicing operation is a data backup operation.At Start 302, a determination is made whether a data backup operation isrequired (step 304). This may be a periodic data backup performed on apredetermined schedule, such as at time intervals specified by theapplication default, or may be in response to a specific request by auser. If a backup operation is scheduled or requested, a backup requestissues at step 306.

Next, at step 308, the backup resource and the client resource (that is,the application requiring a backup function) are co-located. In theevent that the backup resource is defined by a virtual machine, thevirtual machine defining the backup resource may be transferred to thephysical computing device containing the client resource (step 308 a).Alternatively, if the client resource is defined by a virtual machine,the virtual machine defining the client resource may be transferred tothe physical computing device containing the backup resource (step 308b). At step 310, the data backup function is performed according to thebackup resource's standard protocol.

An advantage of the above process will readily become aware to theskilled artisan. As described above, the co-location operation (whichpreceeds the data backup operation in the depicted embodiment) isorchestrated and “transparent,” in that the service provider resource(in the depicted embodiment being backup software) and the clientresource are unaware that a co-location is even occurring. Rather, theservice provider resource/client resource know only that they arestreaming traffic to a predefined IP address on a physical computingdevice, i.e., they are merely and respectively providing and consumingthe service.

Using the example of a data backup function as described herein, forconventional backup processes, the backup traffic would normally bestreamed across the LAN. In contrast, in accordance with the presentinvention, the backup traffic does not leave the physical computingsystem because it is sent to a virtual machine moved onto that samephysical computing system, i.e., to the predetermined IP address. Forthat reason, none of that backup traffic must access the LAN. Rather, asdiscussed above, all steps of the process occur on the SAN.

More specifically, prior to starting the data backup operation, asuitable application such as a data orchestration tool may transfer thevirtual machine defining the backup resource onto the physical computingdevice containing a client resource requiring a backup operation.Alternatively, a virtual machine defining the client resource may betransferred by the data orchestration tool to a physical computingdevice containing the backup resource. The client resource and/or thebackup resource may be an application hosted by the physical computingdevice, or may be defined by virtual machines.

In the example wherein the virtual machine defining the backup resourceis transferred to co-locate with the client resource, after thetransfer, the backup client in the virtual machine that needs to bebacked up is initiated and starts streaming its traffic to the IPaddress of the backup server. Since the virtual machine that hosts thebackup server is located on the same physical machine, the backuptraffic is never seen on the LAN. Rather, all steps occur via in-memorycopy. The virtual machine that hosts the backup resource has access tothe SAN, so all backup traffic is SAN to SAN.

The operation then ends at step 312, such as by transferring the virtualmachine to its point of origin or to another computing device. Forexample (not shown in FIG. 3 for convenience), the virtual machinedefining the client resource may be transferred back to the computingdevice of origin. Similarly, the virtual machine defining the backupresource may be transferred back to the computing device of origin, oralternatively to another computing device requiring a servicingoperation.

As described above, the step of transferring the virtual machinedefining the backup resource or the client resource may be accomplishedby a suitable data orchestration tool. Such tools are known in the artfor use in automated arrangement, coordination, and management ofcomputer systems, middleware, and services. Without intending to imposeany limitation, one such orchestration tool contemplated for use in thepresent invention is the NOVELL® ZENWORKS® Virtual Machine Management.In the embodiment depicted in FIG. 3, live migration of the virtualmachine is contemplated, that is, transfer of an active or runningvirtual machine from one computing device to another. A number ofmethods for live migration of virtual machines, and software packagesfor accomplishing such live migration, are known.

In an alternative embodiment, it may be necessary to provide the virtualmachine direct access to the client resource. This would occur, as anon-limiting example, when it was desired and/or necessary to providethe virtual machine defining the service provider resource direct accessto a Peripheral Component Interconnect (PCI) bus to provide theservicing operation. Of course, it will be appreciated that the exampleapplies equally to the case when a virtual machine defines the clientresource requiring a servicing operation. Exemplary PCI applications(PCI cards) include network cards, sound cards, modems, extra ports suchas USB or serial ports, television tuner cards, and disk controllers.

In this embodiment, shown as a flow chart in FIG. 4, the process wouldproceed in a similar manner as that depicted in FIG. 3. Prior to theco-location step (step 410 on FIG. 4), a stop command would be issued tothe virtual machine resource (i.e., the client resource, the serviceprovider resource, or both) at step 408. After transfer of the virtualmachine resource (see steps 410 a and/or 410 b), at step 412 thetransferred resource is booted up. In the embodiment wherein it is theservice provider resource that is transferred (step 410 a), the serviceprovider resource is then booted up at step 412. Of course, in theembodiment wherein it is the client resource that is transferred to thecomputing device containing the service provider resource (see step 410b), the client resource would then be booted up (step 412). The processproceeds thereafter substantially as described above.

Certain advantages of the invention over the prior art should now bereadily apparent. For example, the present disclosure sets forth amethod for providing a servicing operation, computing systems andcomputing system environments for providing that operation, andparticular computer program products in accordance with the method,which allow a servicing operation such as a data backup operation totake place entirely on a SAN. The process is applicable when either aclient resource or a servicing resource are defined as virtual machines,and require no access to local area networks. That is, the co-locationprocess is “transparent,” in that neither the servicing resource nor theclient resource are aware that the co-location is even occurring.Rather, the resources are only aware that they are streaming traffic toa particular IP address on the SAN. Advantageously, bandwidth and othersuch resource usage is significantly reduced while providing the desiredservicing operation. These features contribute to providing anorchestrated, transparent servicing operation requiring noreconfiguration of any resources involved.

Finally, one of ordinary skill in the art will recognize that additionalembodiments are also possible without departing from the teachings ofthe present invention. This detailed description, and particularly thespecific details of the exemplary embodiments disclosed herein, is givenprimarily for clarity of understanding, and no unnecessary limitationsare to be implied, for modifications will become obvious to thoseskilled in the art upon reading this disclosure and may be made withoutdeparting from the spirit or scope of the invention. Relatively apparentmodifications, of course, include combining the various features of oneor more figures with the features of one or more of other figures.

1. In a computing environment, a method for providing a servicingoperation, comprising: providing a plurality of resources comprising atleast a client resource requiring a periodic servicing operation, aservice provider resource capable of providing the servicing operation,and a storage area network; transparently co-locating the clientresource and the service provider resource; and causing the serviceprovider resource to perform the servicing operation.
 2. The method ofclaim 1, wherein at least one of the client resource and the serviceprovider resource are provided as virtual machines.
 3. The method ofclaim 2, wherein the step of co-locating the client resource and theservice provider resource is performed by one of transferring a virtualmachine providing the client resource to a computing device hosting theservice provider resource or transferring a virtual machine providingthe service provider resource to a computing device hosting the clientresource.
 4. The method of claim 2, wherein the step of co-locating theclient resource and the service provider resource is performed by one ofbooting up the service provider resource in a computing device hostingthe client resource or booting up the client resource in a computingdevice hosting the service provider resource.
 5. The method of claim 3,wherein the servicing operation is a data backup operation.
 6. Themethod of claim 4, wherein the servicing operation is a data backupoperation.
 7. A method for providing a servicing operation to acomputing device, comprising: providing at least one client resourcerequiring a periodic servicing operation; providing at least one serviceprovider resource capable of providing the servicing operation;providing a storage area network; automatically and transparentlyco-locating the client resource and the service provider resource; andperforming the periodic servicing operation.
 8. The method of claim 7,wherein at least one of the client resource and the service providerresource are provided as virtual machines.
 9. The method of claim 8,wherein the step of co-locating the client resource and the serviceprovider resource is performed by one of transferring a virtual machineproviding the client resource to a computing device hosting the serviceprovider resource or transferring a virtual machine providing theservice provider resource to a computing device hosting the clientresource.
 10. The method of claim 8, wherein the step of co-locating theclient resource and the service provider resource is performed by one ofbooting up the service provider resource in a computing device hostingthe client resource or booting up the client resource in a computingdevice hosting the service provider resource.
 11. The method of claim 9,wherein the servicing operation is a data backup operation.
 12. Themethod of claim 10, wherein the servicing operation is a data backupoperation.
 13. A method for providing a servicing operation, comprising:providing at least one client resource requiring a periodic servicingoperation; providing at least one service provider resource capable ofproviding the periodic servicing operation; providing a storage areanetwork; and automatically and transparently co-locating the clientresource and the service provider resource whereby the servicingoperation may be performed entirely on the storage area network.
 14. Themethod of claim 13, wherein at least one of the client resource and theservice provider resource are provided as virtual machines.
 15. Themethod of claim 14, wherein the step of co-locating the client resourceand the service provider resource is performed by one of transferring avirtual machine providing the client resource to a computing devicehosting the service provider resource or transferring a virtual machineproviding the service provider resource to a computing device hostingthe client resource.
 16. The method of claim 14, wherein the step ofco-locating the client resource and the service provider resource isperformed by one of booting up the service provider resource in acomputing device hosting the client resource or booting up the clientresource in a computing device hosting the service provider resource.17. The method of claim 13, wherein the servicing operation is a databackup operation.